Objects First vs. Objects Later

Dissertation "Objects First vs. Objects Later"

Definitionen

Die Dissertation "Objects First vs. Objects Later: Unterschiede und didaktische Ansätze" von Ehlert (2012) untersucht zwei didaktische Methoden zum Lehren der objektorientierten Programmierung (OOP) im Anfangsunterricht: das OOP-First- und das OOP-Later-Vorgehen.

Forschungsfragen

  1. Gibt es signifikante Unterschiede im Lernerfolg der Schülerinnen und Schüler zwischen OOP-First und OOP-Later?
  2. Wie erleben die Lernenden den Unterricht subjektiv in Bezug auf emotionale, kognitive und motivationale Dimensionen bei den beiden Ansätzen?

Methodik

Über ein Schuljahr hinweg wurden zwei 11. Klassen eines Beruflichen Gymnasiums untersucht. Der Lernerfolg wurde anhand von Tests zu verschiedenen Themen der OOP gemessen, darunter Klassenimplementierung, Variablen, Methoden, Steuerstrukturen, Arrays, Vererbung und Assoziation. Zudem wurden neun Befragungen durchgeführt, um das subjektive Erleben der Schüler in den genannten Dimensionen zu erfassen.

Ergebnisse

Schlussfolgerungen

Die Studie liefert Erkenntnisse darüber, wie die Reihenfolge der Einführung von Programmierkonzepten den Lernerfolg und das subjektive Erleben der Schüler beeinflusst. Diese Ergebnisse können als Grundlage für die Gestaltung des Informatikunterrichts dienen, um den Lernprozess effektiver und angenehmer zu gestalten.

Definition und Grundprinzipien der Objektorientierung

Objektorientierung (OOP) ist ein Programmierparadigma, das die Welt durch die Modellierung von Objekten abbildet. Ein Objekt kombiniert Daten (Attribute) und Verhalten (Methoden). Die wichtigsten Prinzipien sind:

  • Kapselung: Daten und Methoden werden in Objekten zusammengefasst. Beispiel: Ein Auto-Objekt enthält Eigenschaften wie farbe oder geschwindigkeit und Methoden wie fahren() oder bremsen().
  • Vererbung: Objekte können Eigenschaften und Verhalten von anderen Objekten erben. Beispiel: Ein Objekt Elektroauto erbt von der Klasse Auto, kann aber zusätzliche Attribute wie ladezeit enthalten.
  • Polymorphismus: Objekte können in unterschiedlichen Kontexten unterschiedlich reagieren. Beispiel: Eine Methode starten() könnte bei einem Benzin-Auto den Motor starten, bei einem Elektroauto den Akku aktivieren.
  • Abstraktion: Nur relevante Details werden gezeigt, während andere versteckt bleiben.
  • Rolle in der Programmierung

    OOP spielt eine zentrale Rolle in der modernen Softwareentwicklung, da sie hilft, komplexe Probleme durch Modularisierung zu lösen. Es ermöglicht eine effiziente Wiederverwendung von Code, leichtere Wartbarkeit und fördert klare Strukturen. Vorteile der Objektorientierung:

  • Wiederverwendbarkeit: Klassen und Objekte können in anderen Projekten verwendet werden.
  • Modularität: Programmteile können unabhängig voneinander entwickelt und getestet werden.
  • Lesbarkeit: Der Code ist besser verständlich, da er reale Objekte modelliert.
  • Skalierbarkeit: Große Programme lassen sich einfacher erweitern.
  • Darstellung der Ansätze
    "Objects First" und "Objects Later"

    Objects First: Schüler lernen zu Beginn die grundlegenden Konzepte der OOP, wie Klassen, Objekte, Methoden und Attribute. Erst danach werden prozedurale Elemente wie Schleifen oder Bedingungen eingeführt. Ziel ist es, ein tiefes Verständnis der Objektorientierung von Anfang an zu fördern.

    Objects Later: Der Unterricht beginnt mit prozeduraler Programmierung, z. B. durch die Verwendung von Funktionen, Schleifen und Bedingungen. OOP-Konzepte werden erst später, nach der Vermittlung dieser Grundlagen, eingeführt.

    Vergleich und Kontrastierung der Ansätze

    Kriterium Objects First Objects Later
    Startpunkt Einführung mit Klassen und Objekten. Beginn mit prozeduralen Konzepten.
    Zugänglichkeit Kann für Anfänger abstrakt und komplex wirken. Einstieg ist oft intuitiver und praktischer.
    Fokus Starke Betonung auf Modellierung und Design. Funktionale Problemlösung im Vordergrund.
    Lernerfolge Fördert tiefere OOP-Kenntnisse von Beginn an. Schafft solide Basis für spätere OOP-Konzepte
    Gemeinsamkeiten Beide Ansätze zielen darauf ab, Programmierkenntnisse systematisch aufzubauen.

    Bewertung der Vor- und Nachteile

    Objects First

    Vorteile

    • Frühzeitiges Verständnis für OOP-Grundprinzipien.
    • Fördert gutes Softwaredesign und nachhaltige Programmierfähigkeiten.
    • Ideal für Schüler mit einem gewissen abstrakten Denkvermögen.

    Nachteile

    • Kann Anfänger überfordern, da abstrakte Konzepte früh eingeführt werden.
    • Lernbarriere für Schüler ohne Programmiererfahrung.

    Objects Later

    Vorteile

    • Schüler bauen schrittweise ein Verständnis für Programmierung auf.
    • Leichterer Einstieg für Anfänger, da konkrete Anwendungen im Fokus stehen.
    • Schnellere Erfolgserlebnisse durch einfache Programme.

    Nachteile

    • Vererbung und Polymorphismus können als Add-ons statt Kernprinzipien wahrgenommen werden.
    • Übergang zur OOP kann für Schüler schwierig sein, da Denkweise geändert werden muss.

    Schlussfolgerung

    Objects First ist geeignet für Lernende mit einem starken theoretischen Zugang und abstrahiertem Denkvermögen. Objects Later eignet sich besser für Schüler mit wenig Vorkenntnissen und bietet einen praktischeren Einstieg. Eine Kombination aus beiden Ansätzen könnte die Stärken beider Modelle vereinen: Prozedurale Grundlagen werden vermittelt, bevor OOP anhand realitätsnaher Beispiele wie Klassen und Objekten eingeführt wird.